#ifndef __MULTIPLICAPUNTOSBONUS_H__
#define __MULTIPLICAPUNTOSBONUS_H__

#include <iostream>
#include "Bonus.h"
#include "Pacman.h"

/*
 * El Multiplicador de puntos hace que al comer comida, el pacman obtenga el doble/triple/cuadruple de
 * puntuacion
 */
class MultiplicaPuntosBonus: public Bonus {

private:
	
	static const int DOBLE = 2;
	static const int TRIPLE = 3;
	static const int CUADRUPLE = 4;

	int multiplicadorPuntos;

public:
	
	MultiplicaPuntosBonus():Bonus("multiplicadorPuntos") { 
	
		// Se genera un numero aleatorio para elegir si se multiplica por el doble, el triple
		// o el cuadruple
		srand((unsigned)time(0));
		int menor=2;
		int mayor=4;
		int rango=(mayor-menor)+1;

		this->multiplicadorPuntos = menor+int(rango*rand()/(RAND_MAX + 1.0));
	}

	/*
	 * @Override
	 */
	void aplicarEfecto(Posicionable *afectado) {
		Pacman *pacmanAfectado = ((Pacman*) afectado);
		pacmanAfectado->setMultiplicadorPuntaje(this->multiplicadorPuntos);
	}

	/*
	 * @Override
	 */
	bool seAplicaAComedor() {
		return true;
	}



};
#endif